﻿using System;
using System.Collections.Generic;

namespace HCMUS_SearchService_Group2
{
    /////////////////////////////////////////////////
    /// \brief Lớp hổ trợ kết nối với CSDL.
    /// \details <h3>Chứa các thuộc tính và các phương thức để khởi tạo hay xóa 1 Database.</h3>
    ////////////////////////////////////////////////
    public class DataConnectionHelper
    {
        // public const string ConnectionString = @"isostore:/DatabaseSQL.sdf";
        public static string _connectionString = "Data Source = 'appdata:/DatabaseSQL.sdf'; File Mode = read only;";
        public const int _defaultNumber = 0;
        private static MyDataContext context = new MyDataContext(_connectionString);
        private static List<ContentDataDTO> listResult = new List<ContentDataDTO>();

        public static List<ContentDataDTO> ListResult
        {
            get { return DataConnectionHelper.listResult; }
            set { DataConnectionHelper.listResult = value; }
        }

        public static MyDataContext Context
        {
            get { return context; }
            set { context = value; }
        }

        public DataConnectionHelper()
        {            
        }

        public DataConnectionHelper(string cnnstring)
        {
            context = new MyDataContext(cnnstring);
        }

        /////////////////////////////////////////////////
        /// \brief Hàm tạo 1 Database.
        /// \details <h3>Tạo 1 Database nếu nó chưa tồn tại.</h3>
        ////////////////////////////////////////////////
        public static void CreateDatabase()
        {
            using (var context = new MyDataContext(_connectionString))
            {
                if (!context.DatabaseExists())
                {                   
                    // create database if it does not exist
                    context.CreateDatabase();
                }
            }
        }

        /////////////////////////////////////////////////
        /// \brief Hàm xóa 1 Database.
        /// \details <h3>Xóa 1 Database nếu nó tồn tại.</h3>
        ////////////////////////////////////////////////
        public static void DeleteDatabase()
        {
            using (var context = new MyDataContext(_connectionString))
            {
                if (context.DatabaseExists())
                {
                    context.DeleteDatabase();
                }
            }
        }
    }
}
